#include "intersect3d.h"
#include "../math/vec3.h"
#include "./aabb.h"

bool Intersect3D::aabbWithAABB(AABB *a, AABB *b)
{
    Vec3 a_min;
    Vec3 a_max;
    Vec3 b_min;
    Vec3 b_max;
    Vec3::add(&a_max, a->getCenter(), a->getHalfExtents());
    Vec3::subtract(&a_min, a->getCenter(), a->getHalfExtents());

    Vec3::add(&b_max, b->getCenter(), b->getHalfExtents());
    Vec3::subtract(&b_min, b->getCenter(), b->getHalfExtents());
    
    if (a_max.getX() < b_min.getX() || a_min.getX() > b_max.getX())
        return false;
    if (a_max.getY() < b_min.getY() || a_min.getY() > b_max.getY())
        return false;
    if (a_max.getZ() < b_min.getZ() || a_min.getZ() > b_max.getZ())
        return false;

    return true;
}